#include <iostream>
#include <stdio.h>

class A
{
	public:
		A() {
			member = 1;
			printf("A()\r\n");
		}
		~A() {
			printf("~A()\r\n");
		}

		virtual void fun1() {
			printf("A::fun1()\r\n");
		}

	private:
		int member;
};

class B : virtual public A 
{
	public:
		B() {
			member = 2;
			printf("B()\r\n");
		}

		~B () {
			printf("~B()\r\n");
		}

		virtual void fun2() {
			printf("B::fun2()\r\n");
		}

	private:
		int member;
};

class C : virtual public A
{
	public:
		C() {
			member = 3;
			printf("C()\r\n");
		}

		~C() {
			printf("~C()\r\n");
		}

		virtual void fun3() {
			printf("C::fun3()\r\n");
		}

	private:
		int member;
};

class BC : public B, public C 
{
	public:
		BC() {
			member = 4;
			printf("BC()\r\n");
		}

		~BC() {
			printf("~BC()\r\n");
		}

		virtual void fun3() {
			printf("BC::fun3()\r\n");
		}

		virtual void fun4() {
			printf("BC::fun4()\r\n");
		}

	private:
		int member;
};

int main()
{
	BC c;

	return 0;
}

#if 0

/*
 * intel
 */
00000000000011c9 <main>:
    11c9:	f3 0f 1e fa          	endbr64 
    11cd:	55                   	push   %rbp
    11ce:	48 89 e5             	mov    %rsp,%rbp
    11d1:	53                   	push   %rbx
    11d2:	48 83 ec 48          	sub    $0x48,%rsp
    11d6:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    11dd:	00 00 
    11df:	48 89 45 e8          	mov    %rax,-0x18(%rbp)	// (rbp-0x18)=rax
    11e3:	31 c0                	xor    %eax,%eax	// eax=0
    11e5:	48 8d 45 b0          	lea    -0x50(%rbp),%rax	// rax=(rbp-0x50)
    11e9:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    11ec:	e8 c3 02 00 00       	callq  14b4 <_ZN2BCC1Ev> 
    11f1:	bb 00 00 00 00       	mov    $0x0,%ebx	// ebx=0
    11f6:	48 8d 45 b0          	lea    -0x50(%rbp),%rax	// rax=(rbp-0x50)
    11fa:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    11fd:	e8 b6 03 00 00       	callq  15b8 <_ZN2BCD1Ev>
    1202:	89 d8                	mov    %ebx,%eax	// eax=ebx
    1204:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx	// rdx=(rbp-0x18)
    1208:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    120f:	00 00 
    1211:	74 05                	je     1218 <main+0x4f>
    1213:	e8 88 fe ff ff       	callq  10a0 <__stack_chk_fail@plt>
    1218:	48 83 c4 48          	add    $0x48,%rsp
    121c:	5b                   	pop    %rbx
    121d:	5d                   	pop    %rbp
    121e:	c3                   	retq   

0000000000001286 <_ZN1AC1Ev>:
    1286:	f3 0f 1e fa          	endbr64 
    128a:	55                   	push   %rbp
    128b:	48 89 e5             	mov    %rsp,%rbp
    128e:	48 83 ec 10          	sub    $0x10,%rsp
    1292:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    1296:	48 8d 15 43 2a 00 00 	lea    0x2a43(%rip),%rdx        # 3ce0 <_ZTV1A+0x10>
    129d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    12a1:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    12a4:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    12a8:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%rax)	// (rax+0x8)=0x1
    12af:	48 8d 3d 4f 0d 00 00 	lea    0xd4f(%rip),%rdi        # 2005 <_ZStL19piecewise_construct+0x1>
    12b6:	e8 05 fe ff ff       	callq  10c0 <puts@plt>
    12bb:	90                   	nop
    12bc:	c9                   	leaveq 
    12bd:	c3                   	retq   

00000000000012be <_ZN1AD1Ev>:
    12be:	f3 0f 1e fa          	endbr64 
    12c2:	55                   	push   %rbp
    12c3:	48 89 e5             	mov    %rsp,%rbp
    12c6:	48 83 ec 10          	sub    $0x10,%rsp
    12ca:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    12ce:	48 8d 15 0b 2a 00 00 	lea    0x2a0b(%rip),%rdx        # 3ce0 <_ZTV1A+0x10>
    12d5:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    12d9:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    12dc:	48 8d 3d 27 0d 00 00 	lea    0xd27(%rip),%rdi        # 200a <_ZStL19piecewise_construct+0x6>
    12e3:	e8 d8 fd ff ff       	callq  10c0 <puts@plt>
    12e8:	90                   	nop
    12e9:	c9                   	leaveq 
    12ea:	c3                   	retq   
    12eb:	90                   	nop

00000000000012ec <_ZN1A4fun1Ev>:
    12ec:	f3 0f 1e fa          	endbr64 
    12f0:	55                   	push   %rbp
    12f1:	48 89 e5             	mov    %rsp,%rbp
    12f4:	48 83 ec 10          	sub    $0x10,%rsp
    12f8:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    12fc:	48 8d 3d 0d 0d 00 00 	lea    0xd0d(%rip),%rdi        # 2010 <_ZStL19piecewise_construct+0xc>
    1303:	e8 b8 fd ff ff       	callq  10c0 <puts@plt>
    1308:	90                   	nop
    1309:	c9                   	leaveq 
    130a:	c3                   	retq   
    130b:	90                   	nop

000000000000130c <_ZN1BC2Ev>:
    130c:	f3 0f 1e fa          	endbr64 
    1310:	55                   	push   %rbp
    1311:	48 89 e5             	mov    %rsp,%rbp
    1314:	48 83 ec 10          	sub    $0x10,%rsp
    1318:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    131c:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)	// (rbp-0x10)=rsi
    1320:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    1324:	48 8b 10             	mov    (%rax),%rdx	// rdx=(rax)
    1327:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    132b:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    132e:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1332:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    1335:	48 83 e8 18          	sub    $0x18,%rax	// rax-=0x18
    1339:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    133c:	48 89 c2             	mov    %rax,%rdx	// rdx=rax
    133f:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1343:	48 01 c2             	add    %rax,%rdx	// rdx+=rax
    1346:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    134a:	48 8b 40 08          	mov    0x8(%rax),%rax	// rax=(rax+0x8)
    134e:	48 89 02             	mov    %rax,(%rdx)	// (rdx)=rax
    1351:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1355:	c7 40 08 02 00 00 00 	movl   $0x2,0x8(%rax)	// (rax+0x8)=0x2
    135c:	48 8d 3d b8 0c 00 00 	lea    0xcb8(%rip),%rdi        # 201b <_ZStL19piecewise_construct+0x17>
    1363:	e8 58 fd ff ff       	callq  10c0 <puts@plt>
    1368:	90                   	nop
    1369:	c9                   	leaveq 
    136a:	c3                   	retq   
    136b:	90                   	nop

000000000000136c <_ZN1BD2Ev>:
    136c:	f3 0f 1e fa          	endbr64 
    1370:	55                   	push   %rbp
    1371:	48 89 e5             	mov    %rsp,%rbp
    1374:	48 83 ec 10          	sub    $0x10,%rsp
    1378:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    137c:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)	// (rbp-0x10)=rsi
    1380:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    1384:	48 8b 10             	mov    (%rax),%rdx	// rdx=(rax)
    1387:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    138b:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    138e:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1392:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    1395:	48 83 e8 18          	sub    $0x18,%rax	// rax-=0x18
    1399:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    139c:	48 89 c2             	mov    %rax,%rdx	// rdx=rax
    139f:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    13a3:	48 01 c2             	add    %rax,%rdx	// rdx=rax
    13a6:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    13aa:	48 8b 40 08          	mov    0x8(%rax),%rax	// rax=(rax+0x8)
    13ae:	48 89 02             	mov    %rax,(%rdx)	// (rdx)=rax
    13b1:	48 8d 3d 68 0c 00 00 	lea    0xc68(%rip),%rdi        # 2020 <_ZStL19piecewise_construct+0x1c>
    13b8:	e8 03 fd ff ff       	callq  10c0 <puts@plt>
    13bd:	90                   	nop
    13be:	c9                   	leaveq 
    13bf:	c3                   	retq   

00000000000013c0 <_ZN1B4fun2Ev>:
    13c0:	f3 0f 1e fa          	endbr64 
    13c4:	55                   	push   %rbp
    13c5:	48 89 e5             	mov    %rsp,%rbp
    13c8:	48 83 ec 10          	sub    $0x10,%rsp
    13cc:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    13d0:	48 8d 3d 4f 0c 00 00 	lea    0xc4f(%rip),%rdi        # 2026 <_ZStL19piecewise_construct+0x22>
    13d7:	e8 e4 fc ff ff       	callq  10c0 <puts@plt>	
    13dc:	90                   	nop
    13dd:	c9                   	leaveq 
    13de:	c3                   	retq   
    13df:	90                   	nop

00000000000013e0 <_ZN1CC2Ev>:
    13e0:	f3 0f 1e fa          	endbr64 
    13e4:	55                   	push   %rbp
    13e5:	48 89 e5             	mov    %rsp,%rbp
    13e8:	48 83 ec 10          	sub    $0x10,%rsp
    13ec:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    13f0:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)	// (rbp-0x10)=rsi
    13f4:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    13f8:	48 8b 10             	mov    (%rax),%rdx	// rdx=(rax)
    13fb:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    13ff:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    1402:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1406:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    1409:	48 83 e8 18          	sub    $0x18,%rax	// rax-=0x18
    140d:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    1410:	48 89 c2             	mov    %rax,%rdx	// rdx=rax
    1413:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1417:	48 01 c2             	add    %rax,%rdx	// rdx=rax
    141a:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    141e:	48 8b 40 08          	mov    0x8(%rax),%rax	// rax=(rax+x08)
    1422:	48 89 02             	mov    %rax,(%rdx)	// (rdx)=rax
    1425:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1429:	c7 40 08 03 00 00 00 	movl   $0x3,0x8(%rax)	// (rax+0x8)=0x3
    1430:	48 8d 3d fa 0b 00 00 	lea    0xbfa(%rip),%rdi        # 2031 <_ZStL19piecewise_construct+0x2d>
    1437:	e8 84 fc ff ff       	callq  10c0 <puts@plt>
    143c:	90                   	nop
    143d:	c9                   	leaveq 
    143e:	c3                   	retq   
    143f:	90                   	nop

0000000000001440 <_ZN1CD2Ev>:
    1440:	f3 0f 1e fa          	endbr64 
    1444:	55                   	push   %rbp
    1445:	48 89 e5             	mov    %rsp,%rbp
    1448:	48 83 ec 10          	sub    $0x10,%rsp
    144c:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    1450:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)	// (rbp-0x10)=rsi
    1454:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    1458:	48 8b 10             	mov    (%rax),%rdx	// rdx=(rax)
    145b:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    145f:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    1462:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1466:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    1469:	48 83 e8 18          	sub    $0x18,%rax	// rax-=0x18
    146d:	48 8b 00             	mov    (%rax),%rax	// rax=(rax)
    1470:	48 89 c2             	mov    %rax,%rdx	// rdx=rax
    1473:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1477:	48 01 c2             	add    %rax,%rdx	// rdx+=rax
    147a:	48 8b 45 f0          	mov    -0x10(%rbp),%rax	// rax=(rbp-0x10)
    147e:	48 8b 40 08          	mov    0x8(%rax),%rax	// rax=(rax+0x8)
    1482:	48 89 02             	mov    %rax,(%rdx)	// (rdx)=rax
    1485:	48 8d 3d aa 0b 00 00 	lea    0xbaa(%rip),%rdi        # 2036 <_ZStL19piecewise_construct+0x32>
    148c:	e8 2f fc ff ff       	callq  10c0 <puts@plt>
    1491:	90                   	nop
    1492:	c9                   	leaveq 
    1493:	c3                   	retq   

0000000000001494 <_ZN1C4fun3Ev>:
    1494:	f3 0f 1e fa          	endbr64 
    1498:	55                   	push   %rbp
    1499:	48 89 e5             	mov    %rsp,%rbp
    149c:	48 83 ec 10          	sub    $0x10,%rsp
    14a0:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    14a4:	48 8d 3d 91 0b 00 00 	lea    0xb91(%rip),%rdi        # 203c <_ZStL19piecewise_construct+0x38>
    14ab:	e8 10 fc ff ff       	callq  10c0 <puts@plt>
    14b0:	90                   	nop
    14b1:	c9                   	leaveq 
    14b2:	c3                   	retq   
    14b3:	90                   	nop

00000000000014b4 <_ZN2BCC1Ev>:
    14b4:	f3 0f 1e fa          	endbr64 
    14b8:	55                   	push   %rbp
    14b9:	48 89 e5             	mov    %rsp,%rbp
    14bc:	53                   	push   %rbx
    14bd:	48 83 ec 18          	sub    $0x18,%rsp
    14c1:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)	// (rbp-0x18)=rdi
    14c5:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    14c9:	48 83 c0 20          	add    $0x20,%rax	// rax+=0x20
    14cd:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    14d0:	e8 b1 fd ff ff       	callq  1286 <_ZN1AC1Ev>	
    14d5:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rpb-0x18)
    14d9:	48 8d 15 40 27 00 00 	lea    0x2740(%rip),%rdx        # 3c20 <_ZTT2BC+0x8>
    14e0:	48 89 d6             	mov    %rdx,%rsi	// rsi=rdx
    14e3:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    14e6:	e8 21 fe ff ff       	callq  130c <_ZN1BC2Ev>
    14eb:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    14ef:	48 83 c0 10          	add    $0x10,%rax	// rax=0x10
    14f3:	48 8d 15 36 27 00 00 	lea    0x2736(%rip),%rdx        # 3c30 <_ZTT2BC+0x18>
    14fa:	48 89 d6             	mov    %rdx,%rsi	// rsi=rdx
    14fd:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    1500:	e8 db fe ff ff       	callq  13e0 <_ZN1CC2Ev>
    1505:	48 8d 15 b4 26 00 00 	lea    0x26b4(%rip),%rdx        # 3bc0 <_ZTV2BC+0x18>
    150c:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    1510:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    1513:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    1517:	48 83 c0 20          	add    $0x20,%rax	// rax+=0x20
    151b:	48 8d 15 ee 26 00 00 	lea    0x26ee(%rip),%rdx        # 3c10 <_ZTV2BC+0x68>
    1522:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    1525:	48 8d 15 c4 26 00 00 	lea    0x26c4(%rip),%rdx        # 3bf0 <_ZTV2BC+0x48>
    152c:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    1530:	48 89 50 10          	mov    %rdx,0x10(%rax)	// (rax+0x10)=rdx
    1534:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    1538:	c7 40 1c 04 00 00 00 	movl   $0x4,0x1c(%rax)	// (rax+0x1c)=0x4
    153f:	48 8d 3d 01 0b 00 00 	lea    0xb01(%rip),%rdi        # 2047 <_ZStL19piecewise_construct+0x43>
    1546:	e8 75 fb ff ff       	callq  10c0 <puts@plt>
    154b:	eb 64                	jmp    15b1 <_ZN2BCC1Ev+0xfd>
    154d:	f3 0f 1e fa          	endbr64 
    1551:	48 89 c3             	mov    %rax,%rbx	// rbx=rax
    1554:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    1558:	48 83 c0 10          	add    $0x10,%rax	// rax+=0x10
    155c:	48 8d 15 cd 26 00 00 	lea    0x26cd(%rip),%rdx        # 3c30 <_ZTT2BC+0x18>
    1563:	48 89 d6             	mov    %rdx,%rsi	// rsi=rdx
    1566:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    1569:	e8 d2 fe ff ff       	callq  1440 <_ZN1CD2Ev>
    156e:	eb 07                	jmp    1577 <_ZN2BCC1Ev+0xc3>
    1570:	f3 0f 1e fa          	endbr64 
    1574:	48 89 c3             	mov    %rax,%rbx	// rbx=rax
    1577:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    157b:	48 8d 15 9e 26 00 00 	lea    0x269e(%rip),%rdx        # 3c20 <_ZTT2BC+0x8>
    1582:	48 89 d6             	mov    %rdx,%rsi	// rsi=rdx
    1585:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    1588:	e8 df fd ff ff       	callq  136c <_ZN1BD2Ev>
    158d:	eb 07                	jmp    1596 <_ZN2BCC1Ev+0xe2>
    158f:	f3 0f 1e fa          	endbr64 
    1593:	48 89 c3             	mov    %rax,%rbx	// rbx=rax
    1596:	48 8b 45 e8          	mov    -0x18(%rbp),%rax	// rax=(rbp-0x18)
    159a:	48 83 c0 20          	add    $0x20,%rax	// rax+=0x20
    159e:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    15a1:	e8 18 fd ff ff       	callq  12be <_ZN1AD1Ev>
    15a6:	48 89 d8             	mov    %rbx,%rax	// rax=rbx
    15a9:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    15ac:	e8 1f fb ff ff       	callq  10d0 <_Unwind_Resume@plt>
    15b1:	48 83 c4 18          	add    $0x18,%rsp	// rsp+=0x18
    15b5:	5b                   	pop    %rbx
    15b6:	5d                   	pop    %rbp
    15b7:	c3                   	retq   

00000000000015b8 <_ZN2BCD1Ev>:
    15b8:	f3 0f 1e fa          	endbr64 
    15bc:	55                   	push   %rbp
    15bd:	48 89 e5             	mov    %rsp,%rbp
    15c0:	48 83 ec 10          	sub    $0x10,%rsp
    15c4:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    15c8:	48 8d 15 f1 25 00 00 	lea    0x25f1(%rip),%rdx        # 3bc0 <_ZTV2BC+0x18>
    15cf:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    15d3:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    15d6:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    15da:	48 83 c0 20          	add    $0x20,%rax	// rax+=0x20
    15de:	48 8d 15 2b 26 00 00 	lea    0x262b(%rip),%rdx        # 3c10 <_ZTV2BC+0x68>
    15e5:	48 89 10             	mov    %rdx,(%rax)	// (rax)=rdx
    15e8:	48 8d 15 01 26 00 00 	lea    0x2601(%rip),%rdx        # 3bf0 <_ZTV2BC+0x48>
    15ef:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    15f3:	48 89 50 10          	mov    %rdx,0x10(%rax)	// (rax+0x10)=rdx
    15f7:	48 8d 3d 4f 0a 00 00 	lea    0xa4f(%rip),%rdi        # 204d <_ZStL19piecewise_construct+0x49>
    15fe:	e8 bd fa ff ff       	callq  10c0 <puts@plt>
    1603:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1607:	48 83 c0 10          	add    $0x10,%rax	// rax+=0x10
    160b:	48 8d 15 1e 26 00 00 	lea    0x261e(%rip),%rdx        # 3c30 <_ZTT2BC+0x18>
    1612:	48 89 d6             	mov    %rdx,%rsi	// rsi=rdx
    1615:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    1618:	e8 23 fe ff ff       	callq  1440 <_ZN1CD2Ev>
    161d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1621:	48 8d 15 f8 25 00 00 	lea    0x25f8(%rip),%rdx        # 3c20 <_ZTT2BC+0x8>
    1628:	48 89 d6             	mov    %rdx,%rsi	// rsi=rdx
    162b:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    162e:	e8 39 fd ff ff       	callq  136c <_ZN1BD2Ev>
    1633:	48 8b 45 f8          	mov    -0x8(%rbp),%rax	// rax=(rbp-0x8)
    1637:	48 83 c0 20          	add    $0x20,%rax	// rax+=0x20
    163b:	48 89 c7             	mov    %rax,%rdi	// rdi=rax
    163e:	e8 7b fc ff ff       	callq  12be <_ZN1AD1Ev>
    1643:	90                   	nop
    1644:	c9                   	leaveq 
    1645:	c3                   	retq   

0000000000001646 <_ZN2BC4fun3Ev>:
    1646:	f3 0f 1e fa          	endbr64 
    164a:	55                   	push   %rbp
    164b:	48 89 e5             	mov    %rsp,%rbp
    164e:	48 83 ec 10          	sub    $0x10,%rsp
    1652:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    1656:	48 8d 3d f7 09 00 00 	lea    0x9f7(%rip),%rdi        # 2054 <_ZStL19piecewise_construct+0x50>
    165d:	e8 5e fa ff ff       	callq  10c0 <puts@plt>
    1662:	90                   	nop
    1663:	c9                   	leaveq 
    1664:	c3                   	retq   

0000000000001665 <_ZThn16_N2BC4fun3Ev>:
    1665:	f3 0f 1e fa          	endbr64 
    1669:	48 83 ef 10          	sub    $0x10,%rdi
    166d:	eb d7                	jmp    1646 <_ZN2BC4fun3Ev>
    166f:	90                   	nop

0000000000001670 <_ZN2BC4fun4Ev>:
    1670:	f3 0f 1e fa          	endbr64 
    1674:	55                   	push   %rbp
    1675:	48 89 e5             	mov    %rsp,%rbp
    1678:	48 83 ec 10          	sub    $0x10,%rsp
    167c:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)	// (rbp-0x8)=rdi
    1680:	48 8d 3d d9 09 00 00 	lea    0x9d9(%rip),%rdi        # 2060 <_ZStL19piecewise_construct+0x5c>
    1687:	e8 34 fa ff ff       	callq  10c0 <puts@plt>
    168c:	90                   	nop
    168d:	c9                   	leaveq 
    168e:	c3                   	retq   
    168f:	90                   	nop

/*
 * arm
 */
000000000040091c <main>:
  40091c:	a9bb7bfd 	stp	x29, x30, [sp, #-80]!
  400920:	910003fd 	mov	x29, sp
  400924:	f9000bf3 	str	x19, [sp, #16]	// [sp+16]=x19
  400928:	910083a0 	add	x0, x29, #0x20	// x0=x29+0x20
  40092c:	940000c5 	bl	400c40 <_ZN2BCC1Ev>
  400930:	52800013 	mov	w19, #0x0                   	// #0
  400934:	910083a0 	add	x0, x29, #0x20	// x0=x29+0x20
  400938:	94000104 	bl	400d48 <_ZN2BCD1Ev>
  40093c:	2a1303e0 	mov	w0, w19		// w0=w19
  400940:	f9400bf3 	ldr	x19, [sp, #16]
  400944:	a8c57bfd 	ldp	x29, x30, [sp], #80
  400948:	d65f03c0 	ret

00000000004009c8 <_ZN1AC1Ev>:
  4009c8:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  4009cc:	910003fd 	mov	x29, sp
  4009d0:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  4009d4:	b0000000 	adrp	x0, 401000 <_ZTT2BC+0x18>
  4009d8:	9102c001 	add	x1, x0, #0xb0
  4009dc:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  4009e0:	f9000001 	str	x1, [x0]	// [x0]=x1
  4009e4:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  4009e8:	52800021 	mov	w1, #0x1                   	// #1
  4009ec:	b9000801 	str	w1, [x0, #8]	// [x0+8]=w1
  4009f0:	90000000 	adrp	x0, 400000 <_init-0x758>
  4009f4:	913ba000 	add	x0, x0, #0xee8
  4009f8:	97ffff7e 	bl	4007f0 <puts@plt>
  4009fc:	d503201f 	nop
  400a00:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400a04:	d65f03c0 	ret

0000000000400a08 <_ZN1AD1Ev>:
  400a08:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400a0c:	910003fd 	mov	x29, sp
  400a10:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0 
  400a14:	b0000000 	adrp	x0, 401000 <_ZTT2BC+0x18>
  400a18:	9102c001 	add	x1, x0, #0xb0	
  400a1c:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400a20:	f9000001 	str	x1, [x0]	// [x0]=x1
  400a24:	90000000 	adrp	x0, 400000 <_init-0x758>
  400a28:	913bc000 	add	x0, x0, #0xef0
  400a2c:	97ffff71 	bl	4007f0 <puts@plt>
  400a30:	d503201f 	nop
  400a34:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400a38:	d65f03c0 	ret

0000000000400a3c <_ZN1A4fun1Ev>:
  400a3c:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400a40:	910003fd 	mov	x29, sp
  400a44:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400a48:	90000000 	adrp	x0, 400000 <_init-0x758>
  400a4c:	913be000 	add	x0, x0, #0xef8
  400a50:	97ffff68 	bl	4007f0 <puts@plt>
  400a54:	d503201f 	nop
  400a58:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400a5c:	d65f03c0 	ret

0000000000400a60 <_ZN1BC2Ev>:
  400a60:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400a64:	910003fd 	mov	x29, sp
  400a68:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400a6c:	f9000ba1 	str	x1, [x29, #16]	// [x29+16]=x1
  400a70:	f9400ba0 	ldr	x0, [x29, #16]	// x0=[x29+16]
  400a74:	f9400001 	ldr	x1, [x0]	// x0=[x0]
  400a78:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400a7c:	f9000001 	str	x1, [x0]	// [x0]=x1
  400a80:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400a84:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400a88:	d1006000 	sub	x0, x0, #0x18	// x0=x0-0x18
  400a8c:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400a90:	aa0003e1 	mov	x1, x0		// x1=x0
  400a94:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400a98:	8b010000 	add	x0, x0, x1	// x0=x0+x1
  400a9c:	f9400ba1 	ldr	x1, [x29, #16]	// x1=[x29+16]
  400aa0:	f9400421 	ldr	x1, [x1, #8]	// x1=[x1+8]
  400aa4:	f9000001 	str	x1, [x0]	// [x0]=x1
  400aa8:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400aac:	52800041 	mov	w1, #0x2                   	// #2
  400ab0:	b9000801 	str	w1, [x0, #8]	// [x0+8]=w1
  400ab4:	90000000 	adrp	x0, 400000 <_init-0x758>
  400ab8:	913c2000 	add	x0, x0, #0xf08
  400abc:	97ffff4d 	bl	4007f0 <puts@plt>
  400ac0:	d503201f 	nop
  400ac4:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400ac8:	d65f03c0 	ret

0000000000400acc <_ZN1BD2Ev>:
  400acc:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400ad0:	910003fd 	mov	x29, sp
  400ad4:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400ad8:	f9000ba1 	str	x1, [x29, #16]	// [x29+16]=x1
  400adc:	f9400ba0 	ldr	x0, [x29, #16]	// x0=[x29+16]
  400ae0:	f9400001 	ldr	x1, [x0]	// x1=[x0]
  400ae4:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400ae8:	f9000001 	str	x1, [x0]	// [x0]=x1
  400aec:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400af0:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400af4:	d1006000 	sub	x0, x0, #0x18	// x0=x0-0x18
  400af8:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400afc:	aa0003e1 	mov	x1, x0		// x1=x0
  400b00:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400b04:	8b010000 	add	x0, x0, x1	// x0=x0+x1
  400b08:	f9400ba1 	ldr	x1, [x29, #16]	// x1=[x29+16]
  400b0c:	f9400421 	ldr	x1, [x1, #8]	// x1=[x1+8]
  400b10:	f9000001 	str	x1, [x0]	// [x0]=x1
  400b14:	90000000 	adrp	x0, 400000 <_init-0x758>
  400b18:	913c4000 	add	x0, x0, #0xf10
  400b1c:	97ffff35 	bl	4007f0 <puts@plt>
  400b20:	d503201f 	nop
  400b24:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400b28:	d65f03c0 	ret

0000000000400b2c <_ZN1B4fun2Ev>:
  400b2c:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400b30:	910003fd 	mov	x29, sp
  400b34:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400b38:	90000000 	adrp	x0, 400000 <_init-0x758>
  400b3c:	913c6000 	add	x0, x0, #0xf18	// x0=x0+0xf18
  400b40:	97ffff2c 	bl	4007f0 <puts@plt>
  400b44:	d503201f 	nop
  400b48:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400b4c:	d65f03c0 	ret

0000000000400b50 <_ZN1CC2Ev>:
  400b50:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400b54:	910003fd 	mov	x29, sp
  400b58:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400b5c:	f9000ba1 	str	x1, [x29, #16]	// [x29+16]=x1
  400b60:	f9400ba0 	ldr	x0, [x29, #16]	// x0][x29+16]
  400b64:	f9400001 	ldr	x1, [x0]	// x1=[x0]
  400b68:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400b6c:	f9000001 	str	x1, [x0]	// [x0]=x1
  400b70:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400b74:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400b78:	d1006000 	sub	x0, x0, #0x18	// x0-=0x18
  400b7c:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400b80:	aa0003e1 	mov	x1, x0		// x1=x0
  400b84:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400b88:	8b010000 	add	x0, x0, x1	// x0=x0+x1
  400b8c:	f9400ba1 	ldr	x1, [x29, #16]	// x1=[x29+16]
  400b90:	f9400421 	ldr	x1, [x1, #8]	// x1=[x1+8]
  400b94:	f9000001 	str	x1, [x0]	// [x0]=x1
  400b98:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400b9c:	52800061 	mov	w1, #0x3                   	// #3
  400ba0:	b9000801 	str	w1, [x0, #8]	// [x0+8]=x1
  400ba4:	90000000 	adrp	x0, 400000 <_init-0x758>
  400ba8:	913ca000 	add	x0, x0, #0xf28
  400bac:	97ffff11 	bl	4007f0 <puts@plt>
  400bb0:	d503201f 	nop
  400bb4:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400bb8:	d65f03c0 	ret

0000000000400bbc <_ZN1CD2Ev>:
  400bbc:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400bc0:	910003fd 	mov	x29, sp
  400bc4:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400bc8:	f9000ba1 	str	x1, [x29, #16]	// [x29+16]=x1
  400bcc:	f9400ba0 	ldr	x0, [x29, #16]	// x0=[x29+16]
  400bd0:	f9400001 	ldr	x1, [x0]	// x1=[x0]
  400bd4:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400bd8:	f9000001 	str	x1, [x0]	// [x0]=x0
  400bdc:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400be0:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400be4:	d1006000 	sub	x0, x0, #0x18	// x0-=0x18
  400be8:	f9400000 	ldr	x0, [x0]	// x0=[x0]
  400bec:	aa0003e1 	mov	x1, x0		// x1=x0
  400bf0:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400bf4:	8b010000 	add	x0, x0, x1	// x0=x0+x1
  400bf8:	f9400ba1 	ldr	x1, [x29, #16]	// x1=[x29+16]
  400bfc:	f9400421 	ldr	x1, [x1, #8]	// x1=[x1+8]
  400c00:	f9000001 	str	x1, [x0]	// [x0]=x1
  400c04:	90000000 	adrp	x0, 400000 <_init-0x758>
  400c08:	913cc000 	add	x0, x0, #0xf30
  400c0c:	97fffef9 	bl	4007f0 <puts@plt>
  400c10:	d503201f 	nop
  400c14:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400c18:	d65f03c0 	ret

0000000000400c1c <_ZN1C4fun3Ev>:
  400c1c:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400c20:	910003fd 	mov	x29, sp
  400c24:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400c28:	90000000 	adrp	x0, 400000 <_init-0x758>
  400c2c:	913ce000 	add	x0, x0, #0xf38
  400c30:	97fffef0 	bl	4007f0 <puts@plt>
  400c34:	d503201f 	nop
  400c38:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400c3c:	d65f03c0 	ret

0000000000400c40 <_ZN2BCC1Ev>:
  400c40:	a9bd7bfd 	stp	x29, x30, [sp, #-48]!
  400c44:	910003fd 	mov	x29, sp
  400c48:	f9000bf3 	str	x19, [sp, #16]	// [sp+16]=x19
  400c4c:	f90017a0 	str	x0, [x29, #40]	// [x29+40]=x0
  400c50:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400c54:	91008000 	add	x0, x0, #0x20	// x0=x0+0x20
  400c58:	97ffff5c 	bl	4009c8 <_ZN1AC1Ev>
  400c5c:	f94017a2 	ldr	x2, [x29, #40]	// x2=[x29+20]
  400c60:	90000000 	adrp	x0, 400000 <_init-0x758>
  400c64:	913fc000 	add	x0, x0, #0xff0
  400c68:	aa0003e1 	mov	x1, x0		// x1=x0
  400c6c:	aa0203e0 	mov	x0, x2		// x0=x2
  400c70:	97ffff7c 	bl	400a60 <_ZN1BC2Ev>
  400c74:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400c78:	91004002 	add	x2, x0, #0x10	// x2=x0+0x10
  400c7c:	b0000000 	adrp	x0, 401000 <_ZTT2BC+0x18>
  400c80:	91000000 	add	x0, x0, #0x0
  400c84:	aa0003e1 	mov	x1, x0		// x1=x0
  400c88:	aa0203e0 	mov	x0, x2	// x0=x2
  400c8c:	97ffffb1 	bl	400b50 <_ZN1CC2Ev>
  400c90:	90000000 	adrp	x0, 400000 <_init-0x758>
  400c94:	913e4001 	add	x1, x0, #0xf90
  400c98:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400c9c:	f9000001 	str	x1, [x0]	// [x0]=x1
  400ca0:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400ca4:	91008000 	add	x0, x0, #0x20	// x0=x0+0x20
  400ca8:	90000001 	adrp	x1, 400000 <_init-0x758>
  400cac:	913f8021 	add	x1, x1, #0xfe0
  400cb0:	f9000001 	str	x1, [x0]	// [x0]=x1
  400cb4:	90000000 	adrp	x0, 400000 <_init-0x758>
  400cb8:	913f0001 	add	x1, x0, #0xfc0
  400cbc:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400cc0:	f9000801 	str	x1, [x0, #16]	// [x0+16]=x1
  400cc4:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400cc8:	52800081 	mov	w1, #0x4                   	// #4
  400ccc:	b9001c01 	str	w1, [x0, #28]	// [x0+28]=w1
  400cd0:	90000000 	adrp	x0, 400000 <_init-0x758>
  400cd4:	913d2000 	add	x0, x0, #0xf48
  400cd8:	97fffec6 	bl	4007f0 <puts@plt>
  400cdc:	14000018 	b	400d3c <_ZN2BCC1Ev+0xfc>
  400ce0:	aa0003f3 	mov	x19, x0
  400ce4:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400ce8:	91004002 	add	x2, x0, #0x10	// x2=x0+0x10
  400cec:	b0000000 	adrp	x0, 401000 <_ZTT2BC+0x18>
  400cf0:	91000000 	add	x0, x0, #0x0
  400cf4:	aa0003e1 	mov	x1, x0	// x1=x0
  400cf8:	aa0203e0 	mov	x0, x2	// x0=x2
  400cfc:	97ffffb0 	bl	400bbc <_ZN1CD2Ev>
  400d00:	14000002 	b	400d08 <_ZN2BCC1Ev+0xc8>
  400d04:	aa0003f3 	mov	x19, x0	// x19=x0
  400d08:	f94017a2 	ldr	x2, [x29, #40]	// x2=[x29+40]
  400d0c:	90000000 	adrp	x0, 400000 <_init-0x758>
  400d10:	913fc000 	add	x0, x0, #0xff0
  400d14:	aa0003e1 	mov	x1, x0	// x1=x0
  400d18:	aa0203e0 	mov	x0, x2	// x0=x2
  400d1c:	97ffff6c 	bl	400acc <_ZN1BD2Ev>
  400d20:	14000002 	b	400d28 <_ZN2BCC1Ev+0xe8>
  400d24:	aa0003f3 	mov	x19, x0	// x19=x0
  400d28:	f94017a0 	ldr	x0, [x29, #40]	// x0=[x29+40]
  400d2c:	91008000 	add	x0, x0, #0x20	// x0=x0+0x20
  400d30:	97ffff36 	bl	400a08 <_ZN1AD1Ev>
  400d34:	aa1303e0 	mov	x0, x19		// x0=x19
  400d38:	97fffeb6 	bl	400810 <_Unwind_Resume@plt>
  400d3c:	f9400bf3 	ldr	x19, [sp, #16]	// x19=[sp+16]
  400d40:	a8c37bfd 	ldp	x29, x30, [sp], #48
  400d44:	d65f03c0 	ret

0000000000400d48 <_ZN2BCD1Ev>:
  400d48:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400d4c:	910003fd 	mov	x29, sp
  400d50:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400d54:	90000000 	adrp	x0, 400000 <_init-0x758>
  400d58:	913e4001 	add	x1, x0, #0xf90
  400d5c:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400d60:	f9000001 	str	x1, [x0]	// [x0]=x1
  400d64:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400d68:	91008000 	add	x0, x0, #0x20	// x0=x0+0x20
  400d6c:	90000001 	adrp	x1, 400000 <_init-0x758>
  400d70:	913f8021 	add	x1, x1, #0xfe0	// x1=x1+0xfe0
  400d74:	f9000001 	str	x1, [x0]	// [x0]=x1
  400d78:	90000000 	adrp	x0, 400000 <_init-0x758>
  400d7c:	913f0001 	add	x1, x0, #0xfc0
  400d80:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400d84:	f9000801 	str	x1, [x0, #16]	// [x0+16]=x1
  400d88:	90000000 	adrp	x0, 400000 <_init-0x758>
  400d8c:	913d4000 	add	x0, x0, #0xf50
  400d90:	97fffe98 	bl	4007f0 <puts@plt>
  400d94:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400d98:	91004002 	add	x2, x0, #0x10	// x2=x0+0x10
  400d9c:	b0000000 	adrp	x0, 401000 <_ZTT2BC+0x18>
  400da0:	91000000 	add	x0, x0, #0x0
  400da4:	aa0003e1 	mov	x1, x0	// x1=x0
  400da8:	aa0203e0 	mov	x0, x2	// x0=x2
  400dac:	97ffff84 	bl	400bbc <_ZN1CD2Ev>
  400db0:	f9400fa2 	ldr	x2, [x29, #24]	// x2=[x29+24]
  400db4:	90000000 	adrp	x0, 400000 <_init-0x758>
  400db8:	913fc000 	add	x0, x0, #0xff0	
  400dbc:	aa0003e1 	mov	x1, x0		// x1=x0
  400dc0:	aa0203e0 	mov	x0, x2		// x0=x2
  400dc4:	97ffff42 	bl	400acc <_ZN1BD2Ev>
  400dc8:	f9400fa0 	ldr	x0, [x29, #24]	// x0=[x29+24]
  400dcc:	91008000 	add	x0, x0, #0x20	// x0=x0+0x20
  400dd0:	97ffff0e 	bl	400a08 <_ZN1AD1Ev>
  400dd4:	d503201f 	nop
  400dd8:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400ddc:	d65f03c0 	ret

0000000000400de0 <_ZN2BC4fun3Ev>:
  400de0:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400de4:	910003fd 	mov	x29, sp
  400de8:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400dec:	90000000 	adrp	x0, 400000 <_init-0x758>
  400df0:	913d6000 	add	x0, x0, #0xf58	
  400df4:	97fffe7f 	bl	4007f0 <puts@plt>
  400df8:	d503201f 	nop
  400dfc:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400e00:	d65f03c0 	ret

0000000000400e04 <_ZThn16_N2BC4fun3Ev>:
  400e04:	d1004000 	sub	x0, x0, #0x10
  400e08:	17fffff6 	b	400de0 <_ZN2BC4fun3Ev>

0000000000400e0c <_ZN2BC4fun4Ev>:
  400e0c:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400e10:	910003fd 	mov	x29, sp
  400e14:	f9000fa0 	str	x0, [x29, #24]	// [x29+24]=x0
  400e18:	90000000 	adrp	x0, 400000 <_init-0x758>
  400e1c:	913da000 	add	x0, x0, #0xf68
  400e20:	97fffe74 	bl	4007f0 <puts@plt>
  400e24:	d503201f 	nop
  400e28:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400e2c:	d65f03c0 	ret

#endif
